<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 对原数组产生影响

      // push 数组最后面 追加元素
      // 返回值  新数组的长度
      var arr1 = [1, 2, 3]
      arr1.push(2)
      console.log(arr1) // 1,2,3,2
      console.log('返回值', arr1.push()) // 4

      // pop 数组最后面 删除元素
      // 返回值 删除的元素
      var arr2 = [1, 4, 5, 8]
      var respop = arr2.pop()
      console.log(arr2) // 1,4,5
      console.log('返回值', respop) //8

      // unshift 数组最前面 追加元素
      // 返回值  新数组的长度
      var arr3 = [1, 8, 9, 3]
      var reshift = arr3.unshift(5)
      console.log(arr3) // 5,1,8,9,3
      console.log('返回值', reshift) //5

      // shift 数组最前面 删除元素
      // 返回值 删除的元素
      var arr4 = [3, 5, 7, 9]
      var resift = arr4.shift()
      console.log(arr4) // 5,7,9
      console.log('返回值', resift) //3

      // splice(从第几个开始删【索引号】,删几个)
      // splice 从中间任意删除
      // 返回值 删除的元素的新数组
      var arr5 = [2, 5, 8, 0, 4] // 删除 8
      var resplice = arr5.splice(2, 1)
      console.log(arr5) // 2,5,0,4
      console.log('返回值', resplice) //[8]

      // splice(从第几个开始删【索引号】,删几个,增加的内容)
      // splice 从中间任意增加
      // 返回值 删除的元素的新数组
      var arr6 = [2, 5, 8, 4] // 删除 8
      var resplices = arr6.splice(2, 1, 'cxm')
      console.log(arr6) // 2,5,'cxm',4
      console.log('返回值', resplices) //[8]

      // resver 倒序
      var arr7 = [3, 4, 5, 6]
      arr7.reverse()
      console.log(arr7)

      // sort 排序 接收一个回调函数
      var arr8 = [6, 4, 8, 2]
      arr8.sort(function (a, v) {
        return a - v // 从小到大
        // return v - a //从大到小
      })
      console.log(arr8) // 2,4,6,8
    </script>
  </body>
</html>
